Op deze pagina vind je een demonstratie van een statistische techniek aan de hand van een voorbeeld.
Meer informatie over hoe je deze pagina kan gebruiken vind je in deze handleiding.
De analyse gebeurt met behulp van R en RStudio. Een inleiding tot deze software vind je hier.
Het is een goed idee om een dataset te verkennen, vooraleer je er allerlei statistische technieken op loslaat. R biedt een heel uitgebreid gamma aan functies om dat te doen.
De output van die functies dient vaak niet om te publiceren. Het is vooral de bedoeling om zelf meer inzicht te krijgen in de variabelen in je dataset.
Hier focussen we op de beschrijving en visuele voorstelling van één continue variabele.
De dataset Caschool bevat gegevens van 13 variabelen geobserveerd bij 420 scholen uit Californië.
Deze dataset kan je inladen met onderstaande code. De data kan je best meteen in een object Caschool
onderbrengen zodat je die later makkelijk opnieuw kan oproepen.
Caschool <- read.csv("https://statlas.ugent.be/datasets/Caschool2.csv")
Het object Caschool
is een dataframe dat alle data voor alle variabelen bevat.
class(Caschool) # Denk eraan dat R hoofdlettergevoelig is!
[1] "data.frame"
Met str()
krijg je een opsomming van alle variabelen in de dataset. Je vindt er ook telkens bij om welk datatype het gaat. Afhankelijk van het datatype zal je sommige functies wel of juist niet kunnen gebruiken om je data te verkennen. Het heeft bijvoorbeeld geen zin om een gemiddelde te berekenen van een variabele van type chr
.
str(Caschool)
'data.frame': 420 obs. of 13 variables:
$ district : chr "Sunol Glen Unified" "Manzanita Elementary" "Thermalito Union Elementary" "Golden Feather Union Elementary" ...
$ grspan : chr "KK-08" "KK-08" "KK-08" "KK-08" ...
$ enrltot : int 195 240 1550 243 1335 137 195 888 379 2247 ...
$ teachers : num 10.9 11.1 82.9 14 71.5 ...
$ computer : int 67 101 169 85 171 25 28 66 35 0 ...
$ testscr : num 691 661 644 648 641 ...
$ compstu : num 0.344 0.421 0.109 0.35 0.128 ...
$ expnstu : num 6385 5099 5502 7102 5236 ...
$ str : num 17.9 21.5 18.7 17.4 18.7 ...
$ logavginc: num 1.356 0.992 0.953 0.953 0.958 ...
$ elpct : num 0 4.58 30 0 13.86 ...
$ readscr : num 692 660 636 652 642 ...
$ mathscr : num 690 662 651 644 640 ...
In de output van str()
zie je inderdaad dat er 13 variabelen zijn met telkens 420 observaties (hier dus: scholen).
Met het symbool $ kan je één variabele uit een dataset selecteren. Hier selecteren we teachers
, dat wil zeggen het aantal leerkrachten in een school.
Caschool$teachers
Het is vaak handig om deze variabele in een nieuw object te steken. Dit is vooral de moeite waard als je nog heel vaak naar deze variabele zal moeten verwijzen. Het kan ook interessant zijn als de oorspronkelijke variabele een moeilijk te begrijpen naam heeft, zoals in dit dataframe bijvoorbeeld expnstu
.
leraren <- Caschool$teachers
Vanaf nu kan je leraren
typen om naar deze variabele te verwijzen in plaats van Caschool$teachers
.
Met class()
kan je achterhalen om welk type variabele het gaat.
class(leraren)
[1] "numeric"
Met de functie summary()
krijg je al heel wat informatie over de variabele.
summary(leraren)
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.85 19.66 48.56 129.07 146.35 1429.00
Vaak is het wel nodig of interessant om deze informatie afzonderlijk te laten berekenen, bijvoorbeeld om er weer verdere berekeningen mee uit te voeren. Hieronder zie je hoe dat kan voor enkele centrummaten en spreidingsmaten. Daarnaast vind je ook een tabblad over hoe je een continue variabele visueel kan voorstellen.
Centrummaten geven je een centrale waarde waarrond de waarden van een variabele liggen. In R bestaan functies om zulke centrummaten makkelijk te berekenen.
mean(leraren)
[1] 129.0674
median(leraren)
[1] 48.565
Gemiddelde en mediaan liggen opvallend ver uiteen. Dat is al een interessante vaststelling die je iets kan leren. (Kijk ook onder tabblad ‘Visueel voorstellen’)
Spreidingsmaten leren je hoe ver de waarden van een variabele uit elkaar liggen. Ook hiervoor bestaan uiteraard functies in R.
var(leraren)
[1] 35311.18
sd(leraren) # De standaarddeviatie is de vierkantswortel van de variantie.
[1] 187.9127
Boxplots kunnen in één oogopslag een idee geven van de verdeling van de variabele. Meer uitleg vind je hier.
boxplot(leraren)
De onder- en bovengrens van de ‘doos’ stemmen overeen met respectievelijk het eerste en derde kwartiel. Die waarden kwam je eerder al tegen bij de output van de functie summary()
.
Het valt op dat de verdeling van leraren
behoorlijk scheef is. Veruit de meeste scholen tellen (veel) minder dan ongeveer 200 leerkrachten. Dat verklaart waarom de mediaan gelijk is aan 48.56. Anderzijds zijn er wel een aantal heel hoge uitschieters. Dit zijn scholen met heel veel leerkrachten, tot zelfs 1429. Deze (relatief weinige) scholen trekken het gemiddelde (129.07) omhoog, wat verklaart waarom het zoveel hoger is dan de mediaan.
Een alternatieve manier van visualiseren is via een histogram.
hist(leraren)
Zie je het verband tussen de boxplot en het histogram? Kan je er dezelfde informatie uit afleiden als bij de boxplot?